import snap7
# 读取plc数据,返回：合格数和不合格数

def read_plc():
    # PLC IP地址
    ip = '192.168.3.120'

    # 创建PLC客户端
    plc = snap7.client.Client()

    # 连接PLC
    plc.connect(ip, 0, 1)

    # 指定要读取的DB块编号、起始地址和大小
    db_number = 1

    # 读取数据
    # 读取第一个 16 位变量（MW100）
    data1 = plc.db_read(db_number, 0, 2)
    value1 = int.from_bytes(data1, byteorder='big', signed=True)

    # 读取第二个 16 位变量（MW102）
    data2 = plc.db_read(db_number, 2, 2)
    value2 = int.from_bytes(data2, byteorder='big', signed=True)

    # 打印结果
    print(f"变量1 (MW0): {value1}")#合格数
    print(f"变量2 (MW2): {value2}")#不合格数

    # 断开与PLC的连接
    plc.disconnect()
    return value1, value2


# if __name__ == '__main__':
#     read_plc()